#include <iostream>
using namespace std;

//缺省函数 defaul funtion
void func(int a =10)//函数参数会又默认值，当不给予传输参数，形式变量为默认值
{
    cout<<a<<endl;   
}

//半缺省--必须从右往左缺省
void func_2(int a,char b = 'b',char c = 'a')//注意，传输默认参数需要具有顺序,不默认的参数需要在默认的前面（左侧先定义），默认参数可以传参
//因为在传参的时候，从左往右传输参数。
{
    cout<<b<<endl;
    cout<<a<<endl;
    cout<<c<<endl;
}
// 缺省函数一般声明给了初始化，定义不给,缺省值只能是常量或者全局变量
//引用，例如栈的初始化（这里给整形数组代表）,
void stack_initial(int *arr,int n)
{
    arr = (int*)malloc(sizeof(int)*4);
    if(arr = NULL)
    {
        perror("malloc fail");
    }
    return ;
}
void stack_initial(int *arr,int n = 5);
// int main()
// {
//     func(1);
//     func();
//     func(3);
//     func_2(10);
//     return 0;
// }